import request from '@/config/axios'
import { id } from 'element-plus/es/locale'

// ERP 销售订单 VO
export interface SaleOrderVO {
  id: number // 编号
  no: string // 销售单编号
  status: number // 销售状态
  customerId: number // 客户编号
  accountId: number // 结算账户编号
  saleUserId: number // 销售用户编号
  orderTime: Date // 下单时间
  totalCount: number // 合计数量
  totalPrice: number // 合计价格，单位：元
  totalProductPrice: number // 合计产品价格，单位：元
  totalTaxPrice: number // 合计税额，单位：元
  discountPercent: number // 优惠率，百分比
  discountPrice: number // 优惠金额，单位：元
  depositPrice: number // 定金金额，单位：元
  fileUrl: string // 附件地址
  remark: string // 备注
  outCount: number // 销售出库数量
  returnCount: number // 销售退货数量
  warehouseLocationId: number // 库位id
  warehouseAreaId: number // 仓库区域id
  salesType: string // 销售类型
  documentStatus: number // 单据状态
  customerName: string // 客户名称
  outboundStatus: number // 出库状态
  currentDeposit: number // 本次定金
  currentDepositRatio: number // 本次定金比率
  currentDepositStatus: number // 本次定金状态
  accumulatedAdvance: number // 累计预收
  accumulatedAdvanceRatio: number // 累计预收比例
  deliveryStatus: number // 送货状态
  documentMaker: string // 制单人
  returnStatus: number // 退货状态
  orderDiscountAmount: number // 整单折扣额
  orderDiscountRate: number // 整单折扣率
  transactionAmount: number // 成交金额
  estimatedSalesExpense: number // 预计销售费用
  invoiceType: string // 发票类型
  invoicedAmount: number // 已开票金额
  uninvoicedAmount: number // 未开票金额
  salesSpecialist: string // 销售专员
  undeliveredQuantity: number // 未出库数量
  customerSource: string // 客户来源
  returnedQuantity: number // 已退货数量
  amountWithoutTax: number // 不含税金额
  amountWithTax: number // 含税金额
  invoicingStatus: number // 开票状态
  productionStorageStatus: number // 生产入库状态
  isOverdue: boolean // 是否逾期
  deliveryDate: Date // 交货日期
  customerOrderNo: string // 客户订单编号
}

// ERP 销售订单 API
export const SaleOrderApi = {
  // 查询ERP 销售订单分页
  getSaleOrderPage: async (params: any) => {
    return await request.get({ url: `/erp/sale-order/page`, params })
  },

  // 查询ERP 销售订单详情
  getSaleOrder: async (id: number) => {
    return await request.get({ url: `/erp/sale-order/get?id=` + id })
  },

  // 新增ERP 销售订单
  createSaleOrder: async (data: SaleOrderVO) => {
    return await request.post({ url: `/erp/sale-order/create`, data })
  },

  // 修改ERP 销售订单
  updateSaleOrder: async (data: SaleOrderVO) => {
    return await request.put({ url: `/erp/sale-order/update`, data })
  },

  // 删除ERP 销售订单
  deleteSaleOrder: async (id: number) => {
    return await request.delete({ url: `/erp/sale-order/delete?ids=` + id })
  },

  // 导出ERP 销售订单 Excel
  exportSaleOrder: async (params) => {
    return await request.download({ url: `/erp/sale-order/export-excel`, params })
  },

  //订单确认完成
  saleOrderComplete: async (data: SaleOrderVO) => {
    return await request.put({ url: `/erp/sale-order/complete`, data })
  },

  //审核订单
  saleOrderAudit: async (data: SaleOrderVO) => {
    return await request.put({ url: `erp/sale-order/audit`, data })
  }
}
